#include <iostream>

#include "LinkList.h"

using namespace std;

int main0(){

    LinkedNode * head = createLinkList();
    printLinkList(head);

    head = reverseList(head);
    printLinkList(head);

    return 0;
}

//双指针法
//思路 在不使用新链表的情况下，将所有的节点顺序反转，只改变节点的指向
LinkedNode* reverseList(LinkedNode* head){

    LinkedNode * perNode = nullptr;//这些都不需要主动去释放，只要没有new 就不需要去delete
    LinkedNode * curNode = head;

    LinkedNode * temp;//临时存放下一个节点
    while (curNode!=nullptr){
        temp = curNode->next;

        curNode->next = perNode;

        perNode = curNode;
        curNode = temp;
    }

    return perNode;
}


